Some user interface environments utilize child window stacks to organize information. A child window stack includes a plurality of windows referred to as child windows. The child windows are referred to as children of the child window stack and each pair of adjacent child windows is separated by a splitter along the shared window edge. The splitter is used to manipulate and/or adjust the size of the child window. The child window stack may be established in a user interface environment. The child windows may include a variety of information and a variety of quantity of information. Scrolling and resizing the windows is often used to view the information contained in the window. The stack has a set amount of space that is maintained and the windows can be manipulated within that space. The child window stack utilizes the set amount of space by distributing or subdividing the space among the child windows.
In some environments, when more space is allotted to (or taken from) the child windows, the allotted space can be distributed or removed evenly among the child windows. That is, an equal amount of additional space is applied to each window in the stack. For example, a task bar in some operating systems functions this way. As each task is opened a pre-sized icon is added to the task bar until the task bar is full. Upon the next task being opened and an icon added to the full task bar, each of the icons are shrunk to the same smaller size regardless of the content. Although this method may be equitable, it is inefficient. Many windows do not have sufficient content to make use of the additional space, or have more content than the reduced space allows. That is, while they are given the same extra space as the other child windows, some windows do not have the content to utilize the additional space and display white space as a result. This wastes valuable screen space that could be used to display information contained in other windows in the stack.
In other environments, when a splitter is moved, the windows on either side of the splitter are adjusted, but the other windows in the stack remain unaffected. This causes some windows to display white space. That is, some windows may be sized larger than is warranted by the content, and as a result display blank or white space instead of content. This situation can result in a user having to continuous adjust the windows to get the desired content in each window visible.
Thus, what is needed is a window layout optimization without the limitations of conventional techniques.